package com.wn.login.repository.api

import com.wn.common.net.config.TU_NAME
import com.wn.login.repository.data.LoginReq
import com.wn.login.repository.data.RegisterRsp
import com.wn.service.db.UserInfo
import com.wn.service.net.BaseResponse
import libcore.net.okhttp.OkDomain.DOMAIN_NAME_HEADER
import retrofit2.Call
import retrofit2.http.*

/**
 * @Author: wn
 * @Date: 2023/3/31 17:04
 * @Description: 登陆的 API 接口 retrofit
 * 移除 suspend -- Call<BaseResponse>    加上挂起可以直接返回 类型
 */
interface LoginService {
  /**
   * 校验用户是否存在
   * @param {String} account - 帐号
   * @returns promise
   */
  @Headers(DOMAIN_NAME_HEADER + TU_NAME)
  @GET("register/check")
  fun isRegister(@Query("account") account: String): Call<BaseResponse<RegisterRsp>>

  /**
   * 登陆
   * @param reqBody LoginReq -- account password
   * @return NetResponse
   */
  @Headers(DOMAIN_NAME_HEADER + TU_NAME)
  @POST("/login")
  suspend fun login(@Body reqBody: LoginReq): BaseResponse<UserInfo>
}